Technical computing environments are known that present a user, such as a scientist or engineer, with an environment that enables users to perform analysis, visualize data, and to model, develop, test and analyze systems. Technical computing environments may allow a user to efficiently and quickly perform tasks such as research and product development.
Technical computing environments may be textual and/or graphical. For example, in one existing technical computing environment, graphical simulation tools allow models to be built by connecting graphical blocks, where each block may represent some functionality and/or data manipulation.
Models built with the blocks may be simulated and/or deployed to a physical system. A model of a circuit, for example, may be automatically converted into a hardware description language (HDL) file, which may be used to synthesize the circuit corresponding to the model.
Blocks that are used to in models may be distributed with the technical computing environment or custom-developed by users. One class of blocks may include blocks that calculate a Discrete Fourier Transform (DFT). A DFT decomposes a sequence of values into components of different frequencies. The DFT has seen wide usage across a large number of fields, including spectral analysis and data compression.
A Fast Fourier Transform (FFT) is an efficient algorithm to compute the DFT and its inverse. A hardware implementation of an FFT can take on many forms. One class of FFT circuits is known as minimum resource FFT implementations. In a minimum resource FFT implementation, it is desirable to compute the FFT efficiently using relatively few hardware resources.